home *** CD-ROM | disk | FTP | other *** search
- /*
- * redir.c:
- *
- * C version of redir() redirection detection function.
- */
-
- #include <dos.h>
- #include <stdlib.h>
-
- unsigned char redir (void) /* Test for redirection of standard devices */
- {
- unsigned char far *fht_ptr; /* File Handle Table pointer */
- int i; /* loop counter */
- unsigned char ret_val, handle_bit; /* return value and bit-setter */
- const unsigned char nrml_hndl[5] =
- { 0x01, /* STDIN default CON: */
- 0x01, /* STDOUT default CON: */
- 0x01, /* STDERR default CON: */
- 0x00, /* AUXIO default AUX: */
- 0x02 /* LSTOUT default PRN: */
- };
-
- /* Set fht_ptr at File Handle Table */
- fht_ptr = *(unsigned char far * far *)MK_FP(_psp,0x0034);
-
- ret_val = 0x00; /* Assume no redirection */
- handle_bit = 0x01; /* Set bit 0 of handle_bit */
-
- for (i = 0; i < 5; ++i) /* There are five defaults */
- {
- if (*(fht_ptr++) != nrml_hndl[i]) /* ith value in Table == default? */
- ret_val |= handle_bit; /* If not, set bit (2 ** i) in ret_val */
- handle_bit <<= 1; /* Shift to set next bit in handle_bit */
- }
-
- return(ret_val);
- }
- /* End of File */
-